<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /*
          编程的目的：操作数据。
          变量：存储数据的容器。
          方法：做了某件事情。
           
          属性和变量
          方法和函数

          方法的声明，就是对诸葛亮这个英雄进行技能加点。拥有了某个技能。
          方法是调用，就是诸葛亮释放了技能。
        */
    //   通过关键字创建了一个空的对象。
        var zgl = new Object();
    //  对象可以动态的添加属性和赋值。
        zgl.age = 22;
        zgl.skill = function(){
            console.log("东风破袭，对敌人造成了1000点伤害。");
            
        }
        zgl.skill();
        /*
           ƒ () {
                console.log("东风破袭，对敌人造成了1000点伤害。");
            }
        */
       /*
       console.log(zgl.skill);
       */
        /*
           构造函数：
        */
       var libai = {
           sex: "男",
           age: 29,
           skill: function(){
               console.log("将进酒");
           }
       };

       var nezha ={
           sex: "男",
           age: 6,
           skill: function(){
               console.log("火尖枪");
           }
       };

       var yuji = {
           sex: "女",
           sge: 18,
           skill: function(){
               console.log("大风来");
           }
       };
    // 函数：封装了一段可以重复执行的代码
    // 解决重复创建英雄的问题： 够着函数。
    // 输入：对象的属性
    // 处理：赋值的赋值
    // 输出：对象
    /*
      构造函数：创建对象的函数。这些对象拥有相同的属性和方法。

      语法结构：
      function 构造函数名(形参){
          this.属性 = value;
          this.属性1 = value1;
          this.方法名 = function (){
              console.log("释放了某个技能");
          }
          var 对象名 = new 构造函数名(实参);
      }
      总结：
          1.构造函数名：首字母大写
          2.函数返回了一个对象。但是木有 return。
          3.调用的时候必须 new
          4.属性和方法名前必须加 this
    */
   function Hero(sex,age){
       this.sex = sex;
       this.age = age;
       this.skill = function(){
           console.log("释放了某个技能");
       }
   }
   var xiangyu = new Hero("男", 32);

   console.log(xiangyu);
   console.log(xiangyu.sex);
   console.log(xiangyu.age);
   xiangyu.skill();

    </script>
</body>
</html>